﻿// Javascript for login

var _checkLoginUrl = '/Account/CheckLogin';
var _logOutUrl = '/Account/LogOut';
var _requestPassUrl = '/Account/RequestPass';
var _forgetPassFormUrl = '/Account/ForgetPassForm';
var _registerUserUrl = '/Account/Register';
var _changePasswordUrl = '/Account/ChangePassword';
var _changeProfileUrl='/Account/ChangeProfile';

function loadForgetPassForm() {
    if ($('#forget-pass-box').length == 0) {
        $('#loading').show('fast');
        GetServerData(_forgetPassFormUrl, loadForgetPassFormCallback);
    } else {
        showForgetPassForm();
    }
}

function loadForgetPassFormCallback(data) {
    if (data) {
        $('body').append(data);
        showForgetPassForm();
    }
    $('#loading').hide();
}

function showForgetPassForm() {
    centerBox('#forget-pass-box');
    $('#box-shader').show();
    $('#forget-pass-box').show('fast');
    changeCaptcha('#forget-cap-img');
}

function closeForgetPassForm() {
    $('#box-shader').hide('fast');
    $('#forget-pass-box').hide('fast');
}

function changeCaptcha(id) {
    $(id).attr('src', '/Account/Captcha/' + Math.random());
}


function centerBox(boxId) {
    $(boxId).css('left', ($(window).width() - $(boxId).outerWidth()) / 2);
    $(boxId).css('top', ($(window).height() - $(boxId).outerHeight()) / 2);
}

function closeFogetPassBox() {
    $('#box-shader').hide();
    $('#forget-pass-box').hide('fast');
    $('#visibility').css('visibility', 'hidden');
}

function showLoading(isShow) {
    if (isShow)
        $('#loading').css('visibility', 'visible');
    else
        $('#loading').css('visibility', 'hidden');
}

$(document).ready(function () {
    $(window).resize(function () {
        // Center login box
        centerBox('#forget-pass-box');
    });
});

function logout() {
    GetServerData(_logOutUrl, logoutCallback);
}

function logoutCallback(data, testStatis, jqXHR) {
    if (data) {
        location.reload();
    }
}

function CheckLogin() {
    $('#error-msg').hide('fast');
    $('#error-msg').html('');
    $('#loading').css('visibility', 'visible');

    var data = new Object();
    data.username = $('#username').val();
    data.password = SHA256($('#password').val());

    PostServerData(_checkLoginUrl, data, CheckLoginCallback);
    return false;
}

function CheckLoginCallback(data, textStatus, jqXHR) {
    $('#loading').css('visibility', 'hidden');
    if(data.result) {
        location.reload();
    } else {
        $('#error-msg').html(data.message);
        $('#error-msg').show('fast');
    }
}

function requestPassword() {
    var data = {};
    data.email = $('#forget-email').val();
    data.captcha = $('#forget-captcha').val();
    $('#forget-loading').css('visibility', 'visible');
    PostServerData(_requestPassUrl, data, RequestPasswordCallBack);
}

function RequestPasswordCallBack(data, textStatus, jqXHR) {
    if(!data.result) {
        $('#error-msg-forget').html(data.message);
        $('#error-msg-forget').show('fast');
    } else {
        closeFogetPassBox();
        showMessageBox("Yêu cầu mật khẩu mới thành công.<br />Vui lòng kiểm tra email để xem thông tin.<br />Nếu không thấy mail, bạn nên kiểm tra trong mục thư rác (SPAM)", "Mật khẩu mới");
    }
}

function register() {
    // Clear error message
    $('#reg-error-msg').hide();
    $('#reg-error-msg').html('');
    $('#reg-loading').css('visibility', 'visible');
    
    var data = GetRegisterDataObject();
    PostServerData(_registerUserUrl, data, registerCallback);
    return false;
}

function registerCallback(data) {
    if(!data.result) {
        $('#reg-error-msg').html(data.message);
        $('#reg-error-msg').show('fast');
    } else {
        showMessageBox("Đăng ký thành công.<br />Tài khoản của bạn có thể sử dụng ngay bây giờ.<br />Bạn có thể kiểm tra email để biết thêm thông tin.", "Đăng ký thành công");
        $('#frm-register')[0].reset();
    }
    $('#reg-loading').css('visibility', 'hidden');
}

function GetRegisterDataObject() {
    var data = {};

    data.FirstName = $('#reg-firstname').val();
    data.LastName = $('#reg-lastname').val();
    data.Email = $('#reg-email').val();
    data.Password = SHA256($('#reg-pass').val());
    data.Phone = $('#reg-phone').val();
    data.Address = $('#reg-address').val();
    data.captcha = $('#reg-captcha').val();

    return data;
}

function ChangePassword() {
    $('#edit-pass-loading').css('visibility', 'visible');

    var data = {};
    data.oldPass = SHA256($('#edit-old-pass').val());
    data.newPass = SHA256($('#edit-new-pass').val());
    PostServerData(_changePasswordUrl, data, ChangePasswordCallback);

    return false;
}

function ChangePasswordCallback(data) {
    if (data.result) {
        $('#edit-pass-error').hide();
        $('#edit-pass-error').html('');
        showMessageBox("Đổi mật khẩu thành công.<br />Vui lòng kiểm tra email để biết thêm thông tin.", "Đổi mật khẩu");
        $('#frm-changepass')[0].reset();
    } else {
        $('#edit-pass-error').html(data.message);
        $('#edit-pass-error').show('fast');
    }
    $('#edit-pass-loading').css('visibility', 'hidden');
}

function ChangeProfile() {
    $('#edit-profile-loading').css('visibility', 'visible');
    $('#edit-profile-msg').hide();
    $('#edit-profile-msg').html('');

    var data = {};
    data.FirstName = $('#edit-firstname').val();
    data.LastName = $('#edit-lastname').val();
    data.Phone = $('#edit-phone').val();
    data.Address = $('#edit-address').val();
    PostServerData(_changeProfileUrl, data, ChangeProfileCallback);
    return false;
}

function ChangeProfileCallback(data) {
    if (data.result) {
        showMessageBox("Đổi Thông Tin tài khoản thành công.<br/>Vui lòng kiểm tra email để biết thêm thông tin.", "Đổi thông tin");
    } else {
        $('#edit-profile-msg').html(data.message);
        $('#edit-profile-msg').show('fast');
    }

    $('#edit-profile-loading').css('visibility', 'hidden');
}